package com.zliblike_platform.service;

import com.zliblike_platform.dto.DownloadHistoryQueryDTO;
import com.zliblike_platform.entity.DownloadHistory;
import com.zliblike_platform.vo.DownloadHistoryVO;
import com.zliblike_platform.vo.PageResult;

import java.util.List;

/**
 * 下载历史服务接口
 */
public interface DownloadHistoryService {
    
    /**
     * 创建下载记录
     * @param downloadHistory 下载历史记录
     * @return 下载记录ID
     */
    Long createDownloadHistory(DownloadHistory downloadHistory);
    
    /**
     * 查询用户的下载历史
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    PageResult<DownloadHistoryVO> getUserDownloadHistory(DownloadHistoryQueryDTO queryDTO);
    
    /**
     * 删除下载历史记录
     * @param downloadId 下载记录ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteDownloadHistory(Long downloadId, Long userId);
    
    /**
     * 批量删除下载历史记录
     * @param downloadIds 下载记录ID列表
     * @param userId 用户ID
     * @return 成功删除的数量
     */
    int batchDeleteDownloadHistory(List<Long> downloadIds, Long userId);
    
    /**
     * 获取用户今日下载次数
     * @param userId 用户ID
     * @return 今日下载次数
     */
    int getTodayDownloadCount(Long userId);
} 